# -*- coding: utf-8 -*-
"""
@Time ： 2022/7/26 10:51
@Auth ： Mr. William 1052949192
@Company ：特斯汀学院 @testingedu.com.cn
@Function ：装饰器
"""
import time


def my_time(func):
    def wrapper(*args, **kwargs):
        # 被装饰函数执行前
        t1 = time.time()
        # 被装饰器函数执行
        res = func(*args, **kwargs)
        # 被装饰函数执行后
        t2 = time.time()
        return res

    return wrapper


def my_time_new(t='ms'):
    """
    三层装饰器，最外层接收装饰器本身的参数
    :param t: 时间单位
    """

    def my_time1(func):
        def wrapper(*args, **kwargs):
            # 被装饰函数执行前
            t1 = time.time()
            # 被装饰器函数执行
            res = func(*args, **kwargs)
            # 被装饰函数执行后
            t2 = time.time()
            name = func.__name__
            if t == 'ms':
                # 下标填坑
                print('{}执行耗时：{} {}'.format(name, round((t2 - t1) * 1000, 2), t))
            elif t == 's':
                times = round(t2 - t1, 2)
                # 变量填坑
                print(f'{name}执行耗时：{times} {t}')
            else:
                # %格式化
                print('%s执行耗时：%.2f %s' % (name, (t2 - t1) * 1000000, t))
            return res

        return wrapper

    # return执行第二层函数，不要带括号
    return my_time1
